package com.zzw.springboot.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zzw.springboot.bean.Product;
import com.zzw.springboot.bean.SysUser;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 商品DAO接口
 */
public interface ProductMapper extends BaseMapper<Product> {
    /**
     * 添加商品
     * @param product 商品信息
     * @return 影响行数
     */
    int insertProduct(Product product);

    /**
     * 更新商品
     * @param product 商品信息
     * @return 影响行数
     */
    int updateProduct(Product product);

    /**
     * 删除商品
     * @param productId 商品ID
     * @return 影响行数
     */
    int deleteProduct(Integer productId);

    /**
     * 根据ID查询商品
     * @param productId 商品ID
     * @return 商品信息
     */
    Product selectProductById(Integer productId);

    /**
     * 查询商品列表（带条件）
     * @param product 查询条件
     * @return 商品列表
     */
    List<Product> selectProductList(Product product);

    /**
     * 查询全部商品
     * @return 商品列表
     */
    List<Product> selectAll();

    /**
     * 批量删除商品
     * @param productIds 商品ID数组
     * @return 影响行数
     */
    int deleteProductBatch(Integer[] productIds);

    /**
     * 验证商品编码是否存在
     * @param productCode 商品编码
     * @param productId 商品ID（排除项）
     * @return 数量
     */
    int checkProductCodeExists(@Param("productCode") String productCode, @Param("productId") Integer productId);
}
